// 封装请求模块
import axios from "axios";
// 导入全局装填管理
import store from "../store";
// 在不同的环境下请求不同的api服务器
// 在生产环境下就是用生产环境的接口
// 测试环境下就是用测试服务器接口
// 开发环境下就用开发环境接口
let apiBaseUrl = {
  production: "http://api.cpengx.cn/finance/api",
  development: "http://api.cpengx.cn/finance/api",
  testDev: "http://api.cpengx.cn/finance/api",
};
// console.log(process.env);

// 创建axios实例对象
const request = axios.create({
  // 配置接口的基准路径
  baseURL: apiBaseUrl[process.env.NODE_ENV] || "/",
});

// 拦截请求
request.interceptors.request.use(
  (config) => {
    const { user } = store.state;
    if (user && user.token) {
      config.headers.Authorization = `Bearer ${user.token}`;
    }
    return config;
  },
  (error) => {
    // 如果请求出错了，还没有发送出去，就会进行这里
    return Promise.reject(error);
  }
);

// 拦截响应
request.interceptors.response.use(
  (response) => {
    if (response.status == 200) {
      return response.data;
    } else {
      return response;
    }
  },
  (error) => {
    return Promise.reject(error);
  }
);

export default request;
